Imports System.Data
Imports System.Data.SqlClient
Imports System
Imports System.Configuration
Public Class DAmonestaciones
    Dim ocnn As New DConexion

    Public Function cargarAmonestaciones(ByVal alumno As Entidades.EAlumno, ByVal lista As List(Of Entidades.EAmonestacion)) As Boolean
        Dim oCmd As New SqlCommand
        Dim band As Boolean = False
        Try
            ocnn.abrirConexion()
            oCmd.Connection = ocnn.obtenerConexion

            For Each amonestacion As Entidades.EAmonestacion In lista
                oCmd.CommandType = CommandType.StoredProcedure
                oCmd.CommandText = "CargarAmonestacionesxAlumno"
                'agrega comandos
                oCmd.Parameters.AddWithValue("@Legajo", alumno.Num_Legajo)
                oCmd.Parameters.AddWithValue("@Fecha", amonestacion.fecha)
                oCmd.Parameters.AddWithValue("@Descripcion", amonestacion.Descripcion)
                oCmd.Parameters.AddWithValue("@Cantidad", amonestacion.Cantidad)
                oCmd.Parameters.AddWithValue("@Trimestre", amonestacion.Trimestre)
                oCmd.Parameters.AddWithValue("@ciclo", amonestacion.ciclo)
                'ejecuta comando
                oCmd.ExecuteNonQuery()
                oCmd.Dispose()
            Next
            band = True
            ocnn.cerrarConexion()
            Return band
        Catch ex As Exception
            Throw New ArgumentException(ex.Message)
        End Try
    End Function

    Public Function modificarAmonestacion(ByVal legajo As Integer, ByVal lista As List(Of Entidades.EAmonestacion)) As Boolean
        Dim oCmd As New SqlCommand
        Dim band As Boolean = False
        Try
            ocnn.abrirConexion()
            oCmd.Connection = ocnn.obtenerConexion
            For Each amonestacion As Entidades.EAmonestacion In lista
                oCmd.CommandType = CommandType.StoredProcedure
                oCmd.CommandText = "ModificarAmonestacionesxAlumno"
                oCmd.Parameters.AddWithValue("@Legajo", legajo)
                oCmd.Parameters.AddWithValue("@Fecha", amonestacion.fecha)
                oCmd.Parameters.AddWithValue("@Descripcion", amonestacion.Descripcion)
                oCmd.Parameters.AddWithValue("@Cantidad", amonestacion.Cantidad)
                oCmd.Parameters.AddWithValue("@Trimestre", amonestacion.Trimestre)
                oCmd.ExecuteNonQuery()
                oCmd.Dispose()
            Next
            band = True
            ocnn.cerrarConexion()
            Return band
        Catch ex As Exception
            Throw New ArgumentException(ex.Message)
        End Try
    End Function

    Public Function borrarAmonestacion(ByVal legajo As Integer, ByVal lista As List(Of Entidades.EAmonestacion)) As Boolean
        Dim oCmd As New SqlCommand
        Dim band As Boolean = False
        Try
            ocnn.abrirConexion()
            oCmd.Connection = ocnn.obtenerConexion
            For Each amonestacion As Entidades.EAmonestacion In lista
                oCmd.CommandType = CommandType.StoredProcedure
                oCmd.CommandText = "BorrarAmonestacionesxAlumno"
                oCmd.Parameters.AddWithValue("@Legajo", legajo)
                oCmd.Parameters.AddWithValue("@Fecha", amonestacion.fecha)
                oCmd.ExecuteNonQuery()
                oCmd.Dispose()
            Next
            band = True
            ocnn.cerrarConexion()
            Return band
        Catch ex As Exception
            Throw New ArgumentException(ex.Message)
        End Try
    End Function

    Public Function buscarAmonestacionesPorAlumno(ByVal legajo As Integer, ByVal fecha As Date) As Entidades.EAmonestacion
        Dim oCmd As New SqlCommand

        Dim oamonestacion As New Entidades.EAmonestacion
        Try
            ocnn.abrirConexion()
            oCmd.Connection = ocnn.obtenerConexion
            oCmd.CommandType = CommandType.StoredProcedure
            oCmd.CommandText = "BuscarAmonestacionesxAlumno"
            oCmd.Parameters.AddWithValue("@Legajo", legajo)
            oCmd.Parameters.AddWithValue("@fecha", fecha)
            Dim dr As SqlDataReader
            dr = oCmd.ExecuteReader
            Do While dr.Read

                oAmonestacion.fecha = dr("fecha")
                oAmonestacion.Descripcion = dr("descripcion")
                oAmonestacion.Cantidad = dr("cantidad")
                oAmonestacion.Trimestre = dr("trimestre")
             
            Loop
            ocnn.cerrarConexion()
            Return oAmonestacion

        Catch ex As Exception
            Throw New ArgumentException(ex.Message)
        Finally
            oamonestacion = Nothing
        End Try
    End Function

    Public Function buscarAmonestacionesPorAlumno1(ByVal legajo As Integer) As List(Of Entidades.EAmonestacion)
        Dim oCmd As New SqlCommand
        Dim oAmonestaciones As New List(Of Entidades.EAmonestacion)
        Try
            ocnn.abrirConexion()
            oCmd.Connection = ocnn.obtenerConexion
            oCmd.CommandType = CommandType.StoredProcedure
            oCmd.CommandText = "BuscarAmonestacionesxAlumno1"
            oCmd.Parameters.AddWithValue("@Legajo", legajo)

            Using oReader As SqlDataReader = oCmd.ExecuteReader
                Do While oReader.Read
                    Dim oAmonestacion As New Entidades.EAmonestacion
                    oAmonestacion.fecha = oReader("fecha")
                    oAmonestacion.Descripcion = oReader("descripcion")
                    oAmonestacion.Cantidad = oReader("cantidad")
                    oAmonestacion.Trimestre = oReader("trimestre")
                    oAmonestaciones.Add(oAmonestacion)
                    oAmonestacion = Nothing
                Loop
                ocnn.cerrarConexion()
                Return oAmonestaciones
            End Using
        Catch ex As Exception
            Throw New ArgumentException(ex.Message)
        Finally
            oAmonestaciones = Nothing
        End Try
    End Function

    Public Function buscarAmonestacionPorAlumno(ByVal Alumno As Entidades.EAlumno, ByVal lista As List(Of Entidades.EAmonestacion)) As Boolean
        Dim oCmd As New SqlCommand
        Dim band As Boolean
        Try
            ocnn.abrirConexion()
            oCmd.Connection = ocnn.obtenerConexion
            Dim oReader As SqlDataReader
            For Each amonestacion As Entidades.EAmonestacion In lista
                oCmd.CommandType = CommandType.StoredProcedure
                oCmd.CommandText = "BuscarAmonestacionxAlumno"
                oCmd.Parameters.AddWithValue("@Legajo", Alumno.Num_Legajo)
                oCmd.Parameters.AddWithValue("@Fecha", amonestacion.fecha)
                oReader = oCmd.ExecuteReader()
                If oReader.HasRows Then
                    band = True
                    Exit For
                End If
                oReader.Close()
            Next
            oCmd.Dispose()
            ocnn.cerrarConexion()
            Return band
        Catch ex As Exception
            Throw New ArgumentException(ex.Message)
        End Try
    End Function
    

    Public Function buscarAmonestacionPorTrimestre(ByVal Alumno As Integer, ByVal trim As Integer, ByVal ciclo As Integer) As List(Of Entidades.EAmonestacion)
        Dim oCmd As New SqlCommand
        Dim oAmonestaciones As New List(Of Entidades.EAmonestacion)
        Try
            ocnn.abrirConexion()
            oCmd.Connection = ocnn.obtenerConexion

            oCmd.CommandType = CommandType.StoredProcedure
            oCmd.CommandText = "BuscarAmonestacionesxTrim"
            oCmd.Parameters.AddWithValue("@Legajo", Alumno)
            oCmd.Parameters.AddWithValue("@Trimestre", trim)
            oCmd.Parameters.AddWithValue("@ciclo", ciclo)
            Using oReader As SqlDataReader = oCmd.ExecuteReader
                Do While oReader.Read
                    Dim oAmonestacion As New Entidades.EAmonestacion
                    oAmonestacion.fecha = oReader("fecha")
                    oAmonestacion.Descripcion = oReader("descripcion")
                    oAmonestacion.Cantidad = oReader("cantidad")
                    oAmonestacion.Trimestre = oReader("trimestre")
                    oAmonestaciones.Add(oAmonestacion)
                    oAmonestacion = Nothing
                Loop
            End Using
            oCmd.Dispose()
            ocnn.cerrarConexion()
            Return oAmonestaciones
        Catch ex As Exception
            Throw New ArgumentException(ex.Message)
        End Try
    End Function
End Class
